Apache POI একটি জনপ্রিয় Java লাইব্রেরি যা Microsoft Office ফাইল ফরম্যাট (যেমন DOC, DOCX, XLSX, PPT, ইত্যাদি) হ্যান্ডল করার জন্য ব্যবহৃত হয়। এর মধ্যে Apache POI Word API Microsoft Word ডকুমেন্ট (DOC, DOCX) তৈরি, সম্পাদনা এবং পঠন/লেখন জন্য ব্যবহৃত হয়। তবে, এর পাশাপাশি অনেক অন্যান্য লাইব্রেরি রয়েছে, যেগুলি Microsoft Word ডকুমেন্ট পরিচালনার জন্য ব্যবহৃত হয়, যেমন Aspose.Words, docx4j, এবং OpenXML SDK।
এই লাইব্রেরিগুলির মধ্যে পার্থক্য, সুবিধা, এবং সীমাবদ্ধতা কী তা বিশ্লেষণ করা হলে আপনি সবচেয়ে উপযুক্ত লাইব্রেরি বাছাই করতে পারবেন আপনার প্রয়োজনের জন্য। এখানে Apache POI Word API এবং অন্যান্য জনপ্রিয় লাইব্রেরির তুলনা করা হল।
ফিচার/লাইব্রেরি | Apache POI | Aspose.Words | docx4j | OpenXML SDK |
---|---|---|---|---|
লাইসেন্স | ওপেন সোর্স (ফ্রি) | বাণিজ্যিক (পেইড) | ওপেন সোর্স (ফ্রি) | ওপেন সোর্স (ফ্রি) |
ফরম্যাট সমর্থন | DOC, DOCX | DOC, DOCX, RTF, PDF, ইত্যাদি | DOCX | DOCX |
প্রপার্টি সমর্থন | সীমিত | সম্পূর্ণ | সম্পূর্ণ | সম্পূর্ণ |
ডকুমেন্ট ফরম্যাট রূপান্তর | সীমিত | পূর্ণ | সীমিত | পূর্ণ |
বিশেষ ফিচার | টেক্সট, ইমেজ, টেবিল | ডিজিটাল সিগনেচার, মাল্টি-থ্রেডিং | XML ভিত্তিক কাস্টমাইজেশন | গভীর কাস্টমাইজেশন |
পারফরমেন্স | মাঝারি | উচ্চ | মাঝারি | উচ্চ |
ইন্টারফেস | সহজ | সহজ | XML ভিত্তিক | .NET ভিত্তিক (Java এর জন্য কিছু কষ্টকর) |
সামাজিক/কমিউনিটি সাপোর্ট | মাঝারি | সীমিত | উচ্চ | মাঝারি |
যদিও Apache POI একটি ওপেন সোর্স এবং ফ্রি লাইব্রেরি যা Microsoft Word ডকুমেন্টের প্রাথমিক কার্যাবলী পরিচালনা করতে সাহায্য করে, অন্যান্য লাইব্রেরিগুলির তুলনায় কিছু বিশেষ বৈশিষ্ট্য বা জটিল কাজের জন্য তা সীমিত হতে পারে। যদি আপনি আরও উন্নত ফিচার, যেমন ডিজিটাল সিগনেচার, ফরম্যাট রূপান্তর, অথবা উচ্চতর পারফরমেন্স চান, তবে Aspose.Words বা OpenXML SDK বেছে নেওয়া উপযুক্ত হতে পারে। অন্যদিকে, যদি আপনি ওপেন সোর্স লাইব্রেরি চান এবং XML ভিত্তিক কাস্টমাইজেশন ব্যবহার করতে চান, তবে docx4j একটি ভালো পছন্দ।
আপনার প্রকল্পের চাহিদা অনুযায়ী লাইব্রেরির নির্বাচন করা উচিত।
Apache POI, Aspose, এবং JODConverter হল তিনটি জনপ্রিয় Java লাইব্রেরি যা Microsoft Office ডকুমেন্টের সাথে কাজ করার জন্য ব্যবহৃত হয়। এই লাইব্রেরিগুলির মধ্যে কিছু সাধারণ ফিচার রয়েছে, তবে তাদের বৈশিষ্ট্য, পারফরম্যান্স এবং ব্যবহার ক্ষেত্রে কিছু গুরুত্বপূর্ণ পার্থক্যও রয়েছে। চলুন, আমরা এই লাইব্রেরিগুলির তুলনা করি।
Apache POI হল একটি ওপেন সোর্স Java লাইব্রেরি, যা Microsoft Office ডকুমেন্ট যেমন Word (.docx), Excel (.xlsx), এবং PowerPoint (.pptx) ফাইলের সাথে কাজ করতে ব্যবহৃত হয়। এটি খুবই জনপ্রিয় এবং বহুল ব্যবহৃত।
Aspose একটি বাণিজ্যিক লাইব্রেরি যা Microsoft Office ডকুমেন্টের সাথে কাজ করার জন্য অত্যন্ত শক্তিশালী ফিচার প্রদান করে। এটি Java এবং .NET সংস্করণে উপলব্ধ।
JODConverter হল একটি Java লাইব্রেরি যা LibreOffice বা OpenOffice এর মাধ্যমে file conversion এর জন্য ব্যবহৃত হয়। এটি মূলত ফাইল কনভার্শন কাজে ব্যবহৃত হয়, বিশেষত Microsoft Office এবং OpenDocument ফরম্যাটের মধ্যে কনভার্ট করার জন্য।
বৈশিষ্ট্য | Apache POI | Aspose | JODConverter |
---|---|---|---|
লাইসেন্স | ওপেন সোর্স (Apache 2.0) | বাণিজ্যিক (পেইড লাইসেন্স) | ওপেন সোর্স (LGPL) |
পারফরম্যান্স | মাঝারি, বড় ফাইলের জন্য ধীর হতে পারে | দ্রুত এবং বড় ফাইলের জন্য উপযোগী | নির্ভরশীল, মূলত ফাইল কনভার্শনের জন্য |
ফিচার সেট | সীমিত (তবে কাস্টমাইজেবল) | বিস্তৃত, সব ধরনের Office ফাইল সমর্থন করে | কনভার্শন ফোকাসড (LibreOffice Integration) |
ফাইল কনভার্শন সাপোর্ট | সীমিত (অপারেটিং সিস্টেম নির্ভর) | শক্তিশালী কনভার্শন সাপোর্ট | কনভার্শন সাপোর্ট (LibreOffice) |
কমপ্লেক্স ফিচার | কাস্টমাইজেবল, তবে কিছু সীমাবদ্ধতা | অত্যন্ত শক্তিশালী, নির্ভরযোগ্য | ফাইল কনভার্শন ভালো, তবে কিছু ফিচার কম |
ডকুমেন্ট ম্যানিপুলেশন | খুব ভালো (টেবিল, টেক্সট, ছবি, প্যারাগ্রাফ) | শক্তিশালী, সব ধরনের Office ফিচার সাপোর্ট করে | মূলত কনভার্শন ভিত্তিক |
এখানে লাইব্রেরি বাছাই করা নির্ভর করবে আপনার প্রয়োজন এবং বাজেটের ওপর। যদি আপনি একটি কমপ্লেক্স ডকুমেন্ট ম্যানিপুলেশন টুল চান, তবে Aspose সবচেয়ে ভালো। যদি আপনি একটি ফ্রি এবং ওপেন সোর্স টুল চান, তবে Apache POI সেরা। আর যদি আপনি কেবল ফাইল কনভার্শন এর জন্য টুল চান, তবে JODConverter উপযুক্ত হতে পারে।
Apache POI হল একটি শক্তিশালী লাইব্রেরি যা Microsoft Office ফাইল ফরম্যাট (যেমন .docx, .xlsx, .pptx) নিয়ে কাজ করতে ব্যবহৃত হয়, কিন্তু এর কিছু সীমাবদ্ধতা রয়েছে। বিভিন্ন ধরনের কাজের জন্য নির্দিষ্ট লাইব্রেরি নির্বাচন করা খুবই গুরুত্বপূর্ণ, কারণ সঠিক লাইব্রেরি আপনার ডেভেলপমেন্ট প্রক্রিয়াকে সহজতর ও কার্যকরী করতে সাহায্য করবে।
এখানে আমরা কিছু সাধারণ কাজের জন্য Apache POI এবং অন্যান্য জনপ্রিয় লাইব্রেরি ব্যবহার করার ক্ষেত্রে যে পছন্দগুলো রয়েছে তা ব্যাখ্যা করব।
Apache POI একটি খুবই শক্তিশালী লাইব্রেরি যখন আপনি .docx ফাইল পড়তে এবং লিখতে চান। এটি Microsoft Word ফাইল ফরম্যাটের জন্য তৈরি করা হয়েছে এবং আপনাকে ডকুমেন্টের মধ্যে Text, Tables, Images, Paragraphs, Hyperlinks ইত্যাদি ম্যানিপুলেট করতে সক্ষম করে।
import org.apache.poi.xwpf.usermodel.*;
public class POIExample {
public static void main(String[] args) {
XWPFDocument document = new XWPFDocument(); // নতুন ডকুমেন্ট তৈরি
XWPFParagraph paragraph = document.createParagraph(); // নতুন প্যারাগ্রাফ তৈরি
XWPFRun run = paragraph.createRun();
run.setText("এটি একটি Word ডকুমেন্টের উদাহরণ।");
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("example.docx");
document.write(out);
out.close();
}
}
Apache POI লাইব্রেরি সরাসরি .doc ফাইলের সাথে কাজ করতে পারে না। তবে, আপনি Aspose.Words বা Apache Tika ব্যবহার করে .doc ফাইলকে .docx এ রূপান্তর করতে পারেন।
Apache POI সরাসরি Word ফাইল থেকে PDF রূপান্তর করতে সক্ষম নয়। কিন্তু আপনি iText বা Apache FOP ব্যবহার করে DOCX ফাইল থেকে PDF তৈরি করতে পারেন।
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.*;
public class DocxToPdf {
public static void main(String[] args) {
try {
// DOCX ফাইল লোড করা
FileInputStream docxFile = new FileInputStream("example.docx");
XWPFDocument doc = new XWPFDocument(docxFile);
// PDF ডকুমেন্ট তৈরি করা
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf"));
pdfDoc.open();
// DOCX থেকে টেক্সট পড়া এবং PDF তে লেখা
for (XWPFParagraph paragraph : doc.getParagraphs()) {
pdfDoc.add(new com.itextpdf.text.Paragraph(paragraph.getText()));
}
pdfDoc.close();
System.out.println("DOCX থেকে PDF রূপান্তর সফল!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
যখন Complex formatting (যেমন পেজ লেআউট, টেবিলের জটিল নকশা, শেডিং, চিত্র ইত্যাদি) প্রয়োজন হয়, তখন Aspose.Words বা LibreOffice/OpenOffice এর মতো শক্তিশালী লাইব্রেরি ব্যবহারের সুপারিশ করা হয়। Apache POI এ এই ধরনের কাজ করা কিছুটা কঠিন এবং সীমিত।
Apache POI ব্যবহার করে আপনি সহজেই Word Templates তৈরি ও প্রক্রিয়াকরণ করতে পারেন, যেখানে আপনি placeholders ব্যবহার করে ডেটা প্রবেশ করাতে পারেন।
XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx"));
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("This is a template with {name} placeholder");
// Replace {name} with actual data
String text = run.getText(0);
text = text.replace("{name}", "John Doe");
run.setText(text, 0);
Apache POI হল একটি খুবই শক্তিশালী লাইব্রেরি Word ডকুমেন্ট ম্যানিপুলেট করার জন্য, তবে কিছু ক্ষেত্রে Aspose.Words, iText, বা LibreOffice এর মতো অন্যান্য লাইব্রেরি ব্যবহারের প্রয়োজন হতে পারে। এখানে কিছু মূল পয়েন্ট:
এভাবে, প্রতিটি কাজের জন্য সঠিক লাইব্রেরি ব্যবহার করলে আপনার কাজ অনেক সহজ এবং কার্যকরী হবে।
Apache POI একটি শক্তিশালী Java লাইব্রেরি যা Microsoft Office ফাইল যেমন Word, Excel, PowerPoint, Outlook ইত্যাদি ফাইল ফরম্যাটের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি Java অ্যাপ্লিকেশনগুলিকে বিভিন্ন Office ডকুমেন্ট থেকে তথ্য পড়তে, লিখতে এবং সম্পাদনা করতে সহায়ক করে।
এখানে আলোচনা করা হবে Apache POI এর সুবিধা এবং কিছু সীমাবদ্ধতা সম্পর্কে।
Apache POI একাধিক প্ল্যাটফর্মে কাজ করে, কারণ এটি Java ভিত্তিক। এটি Windows, macOS, এবং Linux সহ যেকোনো প্ল্যাটফর্মে সমানভাবে কাজ করতে সক্ষম।
POI বিভিন্ন ধরনের Microsoft Office ফাইল ফরম্যাট সাপোর্ট করে, যেমন:
এই ফরম্যাটগুলির সাথে কাজ করার জন্য POI আপনাকে API প্রদান করে, যা ডকুমেন্ট তৈরি, পাঠ্য পড়া, লেখার এবং পরিবর্তন করার সুযোগ দেয়।
Apache POI একটি Open Source লাইব্রেরি, যা সম্পূর্ণ বিনামূল্যে ব্যবহৃত হতে পারে। এটি Apache License 2.0 অধীনে মুক্ত সফটওয়্যার হিসেবে প্রদান করা হয়, যার ফলে এটি ব্যবসায়িক এবং বাণিজ্যিক ব্যবহারের জন্যেও উপযুক্ত।
POI তে অনেক ধরণের ফিচার রয়েছে, যেমন:
POI একটি অত্যন্ত ফ্লেক্সিবল এবং এক্সটেনসিবল লাইব্রেরি, যার মাধ্যমে আপনি কাস্টম ফিচার বা প্রক্রিয়া তৈরি করতে পারেন। এটি বিভিন্ন ডকুমেন্টের কনটেন্ট ম্যানিপুলেট করার জন্য যথেষ্ট নমনীয়।
POI একটি ব্যাপক ব্যবহারকারী এবং ডেভেলপার কমিউনিটি দ্বারা সমর্থিত, যেখানে আপনি সহজেই সমস্যার সমাধান এবং ফিচার আপডেট পেতে পারেন। বিভিন্ন ফোরাম, ব্লগ, এবং টিউটোরিয়ালের মাধ্যমে আপনি সহজেই সহায়তা পেতে পারেন।
বৃহত ফাইল (যেমন ১০০ MB বা তার বেশি) পড়ার এবং লেখার ক্ষেত্রে POI অনেক সময় ধীরগতির হতে পারে। বিশেষ করে Excel ফাইলগুলির ক্ষেত্রে, যখন সেলে অনেক তথ্য থাকে, তখন এটি সিস্টেম রিসোর্স খরচ করতে পারে এবং ডকুমেন্ট প্রসেসিং ধীর হতে পারে।
POI এর XLS (Excel 97-2003) ফরম্যাট এবং পুরানো DOC (Word 97-2003) ফরম্যাটের কিছু ফিচারের সাথে পূর্ণ সমর্থন নেই। নতুন XLSX এবং DOCX ফরম্যাটের তুলনায় এগুলি পুরনো ফরম্যাটগুলির সাপোর্ট সীমিত।
POI এর মাধ্যমে জটিল ডকুমেন্ট যেমন বহুস্তরের Tables, Complex Styles, বা Track Changes (Word) বা Formulas (Excel) সম্পাদনা বা রেন্ডারিং করা কিছুটা জটিল হতে পারে। এই ধরনের ডকুমেন্টের তথ্য বের করার ক্ষেত্রে কিছু নির্দিষ্ট সমস্যা বা সীমাবদ্ধতা থাকতে পারে।
POI তে কিছু অ্যাডভান্সড Office Features (যেমন Macros in Excel) বা Comments এবং Track Changes (Word) এর সাথে কাজ করার ক্ষেত্রে সীমাবদ্ধতা রয়েছে। এটি কিছু ক্ষেত্রে macros বা script-based কার্যকারিতা সাপোর্ট করে না, যা অন্যান্য সফটওয়্যার যেমন Microsoft Office সরাসরি সাপোর্ট করে।
POI মূলত Java ভিত্তিক, তাই যারা Java ব্যবহার করেন না, তাদের জন্য এটি একটি সীমাবদ্ধতা হতে পারে। অন্যান্য ভাষায় POI এর সমতুল্য সমাধান পেতে কিছু কোডিং কনভার্সন প্রয়োজন হতে পারে।
POI ডকুমেন্টের রেন্ডারিং এবং ভিজ্যুয়াল ডেমো প্রদান করে না। উদাহরণস্বরূপ, PPTX বা DOCX ফাইল সম্পাদনা বা তৈরি করা সহজ, তবে আপনি এগুলি দেখতে বা সম্পূর্ণ রূপে প্রিভিউ করতে পারবেন না (POI শুধুমাত্র ব্যাকএন্ড প্রসেসিং করে)।
Apache POI একটি শক্তিশালী এবং বহুল ব্যবহৃত লাইব্রেরি যা Microsoft Office ডকুমেন্ট তৈরি, পড়া এবং সম্পাদনা করার জন্য দুর্দান্ত সমাধান প্রদান করে। এটি Java ডেভেলপারদের জন্য কার্যকর এবং ওপেন সোর্স সমাধান, যা একাধিক ফাইল ফরম্যাট সমর্থন করে এবং বেশ কিছু অ্যাডভান্সড ফিচার অফার করে।
তবে, কিছু সীমাবদ্ধতা যেমন বড় ফাইলের সঙ্গে কর্মক্ষমতা সমস্যা, পুরানো ফরম্যাটের জন্য সীমিত সমর্থন, এবং অ্যাডভান্সড অফিস ফিচারের সম্পূর্ণ সমর্থন না থাকাও লক্ষ্যণীয়। Apache POI এর কিছু সুবিধা এবং সীমাবদ্ধতার দিকে নজর রেখে সঠিক প্রয়োগের ক্ষেত্রে এটি অত্যন্ত কার্যকরী হতে পারে।
Apache POI লাইব্রেরি Word ডকুমেন্ট ম্যানিপুলেশন এবং প্রক্রিয়াজাতকরণের জন্য ব্যবহৃত একটি শক্তিশালী টুল, যা DOC এবং DOCX ফরম্যাটের ডকুমেন্ট তৈরি, সম্পাদনা, এবং পড়তে ব্যবহৃত হয়। তবে, যদি আপনি Apache POI ব্যবহার করার সময় কিছু অতিরিক্ত ফিচার, কার্যকারিতা বা ইন্টিগ্রেশন চান, তবে Third-party Extensions এবং Libraries ব্যবহার করতে পারেন। এই ধরনের extensions বা libraries আপনাকে আরও শক্তিশালী ডকুমেন্ট ম্যানিপুলেশন, কনভার্সন, বা বিভিন্ন ফরম্যাটের মধ্যে কমপ্যাটিবিলিটি আনতে সাহায্য করতে পারে।
এই লেখায়, আমরা কিছু জনপ্রিয় থার্ড-পার্টি লাইব্রেরি এবং এক্সটেনশন দেখব যা Apache POI এর সাথে ইন্টিগ্রেট করা যেতে পারে।
iText একটি ওপেন সোর্স পিডিএফ লাইব্রেরি যা পিডিএফ ডকুমেন্ট তৈরি, পাঠ এবং সম্পাদনার জন্য ব্যবহৃত হয়। Apache POI এবং iText একত্রে ব্যবহার করলে আপনি Word ডকুমেন্ট থেকে পিডিএফ ফাইল তৈরি করতে পারেন।
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiToPdfConversion {
public static void main(String[] args) throws IOException {
// DOCX ফাইল লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("document.docx"));
// iText পিডিএফ ডকুমেন্ট তৈরি করা
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf"));
pdfDoc.open();
// DOCX এর প্যারাগ্রাফ পড়ে পিডিএফে লিখা
for (XWPFParagraph paragraph : document.getParagraphs()) {
pdfDoc.add(new com.itextpdf.text.Paragraph(paragraph.getText()));
}
pdfDoc.close();
}
}
এই কোডে, একটি DOCX ফাইল থেকে সমস্ত প্যারাগ্রাফ পড়া হচ্ছে এবং iText লাইব্রেরি ব্যবহার করে PDF ফাইল তৈরি করা হচ্ছে।
Aspose.Words একটি শক্তিশালী লাইব্রেরি যা Word ডকুমেন্ট তৈরি, সম্পাদনা এবং কনভার্ট করার জন্য ব্যবহৃত হয়। এটি Apache POI এর মতো একটি ওপেন সোর্স লাইব্রেরি নয়, তবে একটি পেশাদার লাইসেন্সধারী টুল। Aspose.Words আপনাকে DOCX ফরম্যাটে আরও উন্নত বৈশিষ্ট্য প্রদান করতে পারে, যেমন মেটাডেটা, অ্যাডভান্সড টেবিল এবং গ্রাফিক্স পরিচালনা।
আপনি Apache POI এবং Aspose.Words একত্রে ব্যবহার করে Word ডকুমেন্টের উন্নত বৈশিষ্ট্যগুলি পরিচালনা করতে পারেন।
import com.aspose.words.Document;
import java.io.IOException;
public class AsposeIntegrationExample {
public static void main(String[] args) throws IOException {
// Aspose.Words ডকুমেন্ট লোড করা
Document doc = new Document("document.docx");
// নতুন ফাইল হিসেবে সেভ করা
doc.save("converted_document.docx");
}
}
এখানে, Aspose.Words লাইব্রেরি দিয়ে DOCX ফাইল লোড এবং সেভ করা হচ্ছে।
Apache FOP (Formatting Objects Processor) একটি ওপেন সোর্স সফটওয়্যার যা XML ডকুমেন্টকে PDF ফরম্যাটে রেন্ডার করার জন্য ব্যবহৃত হয়। আপনি যদি Apache POI দিয়ে DOCX ডকুমেন্ট তৈরি করতে চান এবং পরে তা FOP ব্যবহার করে PDF তে কনভার্ট করতে চান, তবে এটি সম্ভব।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.apps.XMLInputSource;
import org.apache.fop.apps.Driver;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiToFopConversion {
public static void main(String[] args) throws Exception {
// DOCX ফাইল লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("document.docx"));
// FOP প্রক্রিয়া তৈরি করা
FopFactory fopFactory = FopFactory.newInstance(new File("fop.xconf"));
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, new FileOutputStream("output.pdf"));
// FOP ড্রাইভার দিয়ে কনভার্ট করা
Driver driver = new Driver();
driver.setOutputStream(new FileOutputStream("output.pdf"));
driver.setContentHandler(fop.getDefaultHandler());
for (XWPFParagraph paragraph : document.getParagraphs()) {
// DOCX প্যারাগ্রাফ থেকে XML এর মাধ্যমে ফরম্যাট করা
String xmlContent = "<text>" + paragraph.getText() + "</text>";
driver.process(new XMLInputSource(new StringReader(xmlContent)));
}
}
}
এখানে, Apache POI দিয়ে DOCX ফাইল থেকে প্যারাগ্রাফ নিয়ে Apache FOP দিয়ে PDF তে কনভার্ট করা হচ্ছে।
Freemarker একটি জনপ্রিয় টেমপ্লেট ইঞ্জিন যা Java প্রোগ্রামিং ভাষায় ডাইনামিক কন্টেন্ট তৈরি করতে ব্যবহৃত হয়। আপনি Apache POI এর সাথে Freemarker ব্যবহার করে Word ডকুমেন্টের জন্য ডাইনামিক কনটেন্ট তৈরি করতে পারেন।
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class PoiFreemarkerExample {
public static void main(String[] args) throws IOException, TemplateException {
// Freemarker কনফিগারেশন তৈরি করা
Configuration cfg = new Configuration(Configuration.VERSION_2_3_30);
cfg.setDirectoryForTemplateLoading(new File("templates"));
// টেমপ্লেট লোড করা
Template template = cfg.getTemplate("template.ftl");
// ডাইনামিক ডেটা
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("name", "John Doe");
// Freemarker টেমপ্লেট প্রসেস করা
StringWriter stringWriter = new StringWriter();
template.process(dataModel, stringWriter);
// DOCX ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
paragraph.createRun().setText(stringWriter.toString());
// DOCX ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("output.docx")) {
document.write(out);
}
}
}
এখানে, Freemarker টেমপ্লেট ব্যবহার করে ডাইনামিক ডেটা দিয়ে DOCX ফাইল তৈরি করা হচ্ছে।
Apache POI লাইব্রেরির সাথে third-party extensions এবং libraries একত্রে ব্যবহার করে আপনি Word ডকুমেন্টের কার্যকারিতা বাড়াতে পারেন। বিভিন্ন লাইব্রেরি যেমন iText, Aspose.Words, Apache FOP, এবং Freemarker আপনাকে DOCX ফাইলের কনভার্টন, উন্নত কনটেন্ট ম্যানিপুলেশন, ডাইনামিক ডেটা ইনজেকশন, এবং পিডিএফ/এক্সএমএল কনভার্সন করতে সহায়তা করতে পারে।
এই ধরনের integrations আপনার ডকুমেন্ট ম্যানিপুলেশনের ক্ষমতাকে ব্যাপকভাবে সম্প্রসারিত করতে সক্ষম, বিশেষ করে যখন আপনার বিভিন্ন ফরম্যাটে আউ
টপুট প্রয়োজন হয় বা বিশেষ কনটেন্ট ম্যানিপুলেশন দরকার হয়।
common.read_more